<?php
/**
 * 数据库连接异常处理类
 *
 * @package		comnide
 * @author			B.I.T
 * @copyright		Copyright (c) 2013 - 2016.
 * @license
 * @link
 * @since				Version 1.17
 */

/* ------------------------------------------------------------------------------------------------------------------------------------------------------------------
 * 数据库连接异常处理类
* SQL类数据库操作需要集成此基类实现
* ------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
class CO_DB_Exception extends Exception{
	const DATABASE_NO_CONNNET_CODE = 1010001;
	const NO_DB_SELECT_CODE = 1010002;
	const SQL_QUERY_ERROR = 1010003;
	
	protected $_sql = '';

	/**
	 * 设置sql
	 * @param	sql string sql语句
	 * @return	true
	 */
	protected function _SetSql($sql){
		$this->_sql = $sql;
		return true;
	}
	
	/**
	 * 获取sql
	 * @return	string sql语句字符串
	 */
	public function GetSql(){
		return $this->_sql;
	}
	
	/**
	 * 抛出数据库为连接的异常
	 * @param	error_msg string 错误信息
	 * @throws	异常
	 */
	static function NoConnent($error_msg){
		throw new self($error_msg, self::DATABASE_NO_CONNNET_CODE);
	}
	
	/**
	 * 抛出数据库为指定的异常
	 * @param	error_msg string 错误信息
	 * @throws	异常
	 */
	static function NoDbSelected($error_msg){
		throw new self($error_msg, self::NO_DB_SELECT_CODE);
	}
	
	/**
	 * sql运行错误
	 * @param	sql string sql语句
	 * @param	error_msg string 错误信息
	 */
	static function QueryError($sql, $error_msg){
		$exception = new self($error_msg, self::SQL_QUERY_ERROR);
		$exception->_SetSql($sql);
		//throw $exception;
	}
}